/**
 * 处理情况统计(政府)
 */
var iFrameName = this.name;
var governmentProcessingStatistics = {
		init: function(){
			var me = this;
			me.initEvent();
			me.loadTableTitle();
			me.initQueryTime();
			me.DoubleBarChart=me.initDoubleBarChart();
			me.BarChart=me.initBarChart();
			me.initProcessingStatistics();
		},
		initEvent: function(){
			var me = this;
			$('#queryBtn').click(function () {
				var areaIds = $("#areaChoose").combotree("getValues");
	            if(areaIds.length==0){
	            	global.ajaxLoading.pop("请选择所属区域", false, 1000);
	                return;
	            }
				me.initProcessingStatistics();
				 //me.initBarChart();
				 //me.queryTable();
		     });
			 
			 $('#exportExcel').click(function () {
				 me.exportEnterprise();
			 });
			 
			 $('#confirmExport').click(function () {
				 me.exportComfirm();
			 });
			 $("#levelSelect").on('change',function(){
					var level = $("#levelType").val();
					me.Areatree(level);
				});
			 $.ajax({
		    		type : 'post',
		    		async : true,
		    		url : appCtx+"base/report/governmentProcessingStatistics/queryAllAlarmType.html",
		    		cache : false,
		    		dataType : "JSON",
		    		success : function(data) {	
		    			if(data){
		    				var selectStr="<option value ='' selected='selected'>请选择报警类型 </option>";
		    				for(var i=0;i<data.length;i++){
		    					selectStr+="<option value='"+data[i].id+"'>"+data[i].name+"</option>";
		    				}
		    				$('#alarmTypeSelect').html(selectStr);
		    			}
		    		}
			 });
			 $.ajax({
		    		type : 'post',
		    		async : false,
		    		url : appCtx+"system/common/queryLevel.html",
		    		cache : false,
		    		dataType : "JSON",
		    		success : function(data) {	
		    			if(data){
		    				var selectStr="";
		    				for(var i=0;i<data.length;i++){
		    					selectStr+="<option value='"+data[i].id+"'>"+data[i].text+"</option>";
		    				}
		    				$('#levelType').html(selectStr);
		    				$('#levelType').select2();
		    				me.Areatree(data[0].id);
		    			}
		    		}
			 });
		},
		
	    Areatree:function(level){
			$('#areaChoose').combotree({
				url:appCtx + "system/common/queryAreaName.html?level="+level,
				valueField: 'id',
	            textField: 'text',
	            method: 'post',
	            multiple:true,
	            editable : false,
	            collapseAll : true,
	            onlyLeafCheck:true,
	            loadFilter: function(data){
	                 return data;
	    		},
	    		/*onBeforeSelect:function(node){
	    			if (!$("#queryArea").combotree("tree").tree('isLeaf', node.target)) {
	                    return false;
	                }
	            },*/
	    		onLoadSuccess: function (data) {
	    			$('#areaChoose').combotree('tree').tree("collapseAll");
	    			$('#areaChoose').combotree('setText','请选择所属区域');
	         	}
				
			});
		},
		
		loadTableTitle:function(){
	    	$("#resultTable").flexigrid({
		            dataType : 'json',
		            colModel :[{
		                display : '车牌号',
		                name : 'vehicle_no',
		                width : 12,
		                sortable : false,
		                align : 'left'
		            },{
		                display : '所属业户',
		                name : 'enterprise_name',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                showTitle : 'enterprise_name'
		            },{
		                display : '管理机构',
		                name : 'platform_name',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                showTitle : 'platform_name'
		            },{
		                display : '报警类型',
		                name : 'alarm_name',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                showTitle : 'alarm_name'
		            },{
		                display : '报警来源',
		                name : 'alarm_src',
		                width : 8,
		                sortable : false,
		                align : 'left',
		                showTitle : 'alarm_src',
		                paramcolnames:['alarm_src'],
		                handlefunction:function(alarm_src){
		                	var handleStr =alarm_src==1?'终端':'平台';	
		            		return handleStr;
		                }
		            },{
		                display : '报警时间',
		                name : 'alarm_time',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                paramcolnames:['alarm_time'],
		                handlefunction:governmentProcessingStatistics.getFormatTime
		            },{
		                display : '处理类型',
		                name : 'handle_type',
		                width : 8,
		                sortable : false,
		                align : 'left',
		                paramcolnames:['handle_type'],
		                handlefunction:function(handle_type){
		                	var handleStr =handle_type==1?'系统处理':'人工处理';	
		            		return handleStr;
		                }
		            },{
		                display : '处理人',
		                name : 'handle_name',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                showTitle : 'handle_name'
		            },{
		                display : '处理时间',
		                name : 'handle_time',
		                width : 12,
		                sortable : false,
		                align : 'left',
		                paramcolnames:['handle_time'],
		                handlefunction:governmentProcessingStatistics.getFormatTime
		            }]  ,
		            resizable : false,
					sortname : "id",// 第一次加载数据时排序列
					sortorder : "desc",// 第一次加载数据时排序类型
					usepager : true,// 是否分页，默认为true。
					showToggleBtn : false,
					showTableToggleBtn : true,// 是否显示收起/打开按钮,默认不显示。
					useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
					rp : 10,// 每页记录数，默认为10
					checkbox : false,// 是否要多选框,默认为false。
					rowId : 'id',// 多选框绑定行的id,只有checkbox : true时才有效。
					singleSelect : false,
		            height:300,
		            widthType:'%',
		            width:$('#resultTable').width(),
		            rp : 10,
		         });
		},
		queryTable: function(areaName) {
			var alarmType = $("#alarmTypeSelect").val();
			var inputStartDate = $("#inputStartDate").val();
			var inputEndDate = $("#inputEndDate").val();

			// 查询参数
			var params = [{
	              name: 'alarm_type',
	              value: alarmType
	          },{
	              name: 'area_name',
	              value: areaName
	          }, {
	              name: 'startTime',
	              value: inputStartDate
	          }, {
	              name: 'endTime',
	              value: inputEndDate
	          }];
			$("#resultTable").flexOptions({
				url : appCtx + "base/report/governmentProcessingStatistics/queryTableListByAreaName.html",
				newp : 1,// 设置起始页
				params : params
			// 设置查询参数
			}).flexReload();// 重新加载
		},
		getColumn:function(){
	    	return [{
                display : '车牌号',
                name : 'vehicle_no',
                width : 150,
                sortable : false,
                align : 'left'
            },{
                display : '所属业户',
                name : 'enterprise_name',
                width : 170,
                sortable : false,
                align : 'left',
                showTitle : 'enterprise_name'
            },{
                display : '管理机构',
                name : 'platform_name',
                width : 170,
                sortable : false,
                align : 'left',
                showTitle : 'platform_name'
            },{
                display : '报警类型',
                name : 'alarm_name',
                width : 170,
                sortable : false,
                align : 'left',
                showTitle : 'alarm_name'
            },{
                display : '报警来源',
                name : 'alarm_src',
                width : 100,
                sortable : false,
                align : 'left'
            },{
                display : '报警时间',
                name : 'alarm_time',
                width : 200,
                sortable : false,
                align : 'left'
            },{
                display : '处理类型',
                name : 'handle_type',
                width : 100,
                sortable : false,
                align : 'left'
            },{
                display : '处理人',
                name : 'handle_name',
                width : 150,
                sortable : false,
                align : 'left'
            },{
                display : '处理时间',
                name : 'handle_time',
                width : 200,
                sortable : false,
                align : 'left'
            }]
	    },
		getFormatTime : function (msg){
			var outTime = "0";
			if (null != msg && undefined != msg ) {
				var date = new Date(parseInt(msg)); 
				var y = date.getFullYear();    
				var m = date.getMonth() + 1;    
				m = m < 10 ? ('0' + m) : m;    
				var d = date.getDate();    
				d = d < 10 ? ('0' + d) : d;    
				var h = date.getHours();  
				h = h < 10 ? ('0' + h) : h;  
				var minute = date.getMinutes();  
				var second = date.getSeconds();  
				minute = minute < 10 ? ('0' + minute) : minute;    
				second = second < 10 ? ('0' + second) : second;   
				outTime = y + '-' + m + '-' + d+'  '+h+':'+minute+':'+second;
			}
			return outTime;
		},
		initQueryTime:function(){//默认时间
				/** 初始化日期 * */
		      var date = new Date();
		      var beforeDate=new Date(date.getTime()-3600*24000*30);
		      $("#inputStartDate").val(global.getToday(beforeDate));
		      $("#inputEndDate").val(global.getTime(date));
	      },
	      
		initDoubleBarChart: function(){
			var me = this;
			option = {
					title : {
				        text: '区域处警统计',
				        x:'center',
				        textStyle:{
				        	fontWeight:"normal",
				        	fontSize:16
				        }
				    },
				    tooltip: {
				        trigger: 'axis',
				        formatter: '{b0}<br />{a0}: {c0}',
				        axisPointer: {
				            type: 'cross',
				            crossStyle: {
				                color: '#999'
				            }
				        }
				    },
				    grid: {
				        left: '3%',
				        right: '4%',
				        top:"12%",
				        bottom:"3%",
				        containLabel: true
				    },
				    legend: {
				    	data:[]
				    },
				    xAxis: [
				        {
				            type: 'category',
				            data: []
				        }
				    ],
				    yAxis: [
				        /*{
				            type: 'value',
				            name: '入网率',
				            min: 0,
				            max: 100,
				            interval: 20,
				            axisLabel: {
				                formatter: '{value} %'
				            }
				        },
				        {
				            type: 'value',
				            name: '上线率',
				            min: 0,
				            max: 100,
				            interval: 20,
				            axisLabel: {
				                formatter: '{value} %'
				            }
				        }*/
				        {
				        	type: 'value',
				        	mimInterval: 1,
				        	name: '单位：次'
				        }
				        
				    ],
				    series: [
				        {
				            name:'人工处理',
				            type:'bar',
				            barMaxWidth:'40px',
				            itemStyle: {normal: {color:'#27727b'}},
				            data:[],
				            label:{
				            	normal:{
				            		show:true,
					            	position:"top",
					            	formatter:'{c}'
				            	}
				            	
				            },
				        },
				        {
				            name:'系统处理',
				            type:'bar',
				            barMaxWidth:'40px',
				            itemStyle: {normal: {color:'#e87c25'}},
				            data:[],
				            label:{
				            	normal:{
				            		show:true,
					            	position:"top",
					            	formatter:'{c}'
				            	}
				            	
				            },
				        }
				    ]
				};
		        var mydoubleChart = echarts.init(document.getElementById('doubleBarChart'));
		        mydoubleChart.setOption(option);
		        window.onresize = mydoubleChart.resize;
		        
		        mydoubleChart.on('click', function(param){
	            	var xAxisData = me.xAxisData;
	            	var areaName = xAxisData[param.dataIndex];
	            	$('#area_name').val(areaName);
	            	me.queryBarListByAreaName(areaName);
	            	me.queryTable(areaName);
	            });
		        
		        return {
		        	refash : function(option){
		        		mydoubleChart.setOption(option);
		        	},
		        	option : option,
		        	barChartDom : mydoubleChart
		        };        
			},
			
			initBarChart : function(){
				var me = this;
				var option = {
						title : {
					        text: '通知类型分布',
					        x:'center',
					        textStyle:{
					        	fontWeight:"normal",
					        	fontSize:16
					        }
					    },
						color: ['#3398DB'],
					    tooltip : {
					        trigger: 'axis',
					        show: true,
					        axisPointer : {            // 坐标轴指示器，坐标轴触发有效
					        	show: false,
					            type : 'line'        // 默认为直线，可选为：'line' | 'shadow'
					        },
					        formatter:function(a){
					        	if(a[0].name==''){
					        		return;
					        	}
					        	var relVal = "";
					        	relVal = a[0].name+"："+a[0].value+"次";
					        	return relVal;
					        }
					    },
					    grid: {
					        left: '3%',
					        right: '4%',
					        top:"12%",
					        bottom:"3%",
					        containLabel: true
					    },
					    xAxis : [
					        {
					            type : 'category',
					            data : [],//['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
					            axisTick: {
					                alignWithLabel: true
					            },
					            axisLabel:{
					            	
					            	textStyle: {
			                            fontSize: 12
			                        }
					            }
					        }
					    ],
					    yAxis : [
					        {
					            type : 'value',
					            minInterval:1,
			                    min:0,
			                    axisLabel: {
			                        formatter: function (value, index) {
			                        	if (value >= 1 || value == 0) {
			                            	if (value%1 === 0) {
			                            		return value;
			                            	}
			                            }
			                        }
			                    },

					            name: '单位：次'
					        }
					    ],
					    series : [
					        {
					            name:'',
					            type:'bar',
					            barMaxWidth: '40px',
					            label:{
					            	normal:{
					            		show:true,
						            	position:"top",
						            	formatter:'{c}'
					            	}
					            	
					            },
					            
					            itemStyle: {
					            	 label : {
					                        show: true, position: 'insideTop' //柱状图顶部显示数字
					                }
					            },
					            data:[],//[10, 52, 200, 334, 390, 330, 220]
					        }
					    ],
				};
		        
		        var myChart = echarts.init(document.getElementById('barChart'));
	            myChart.setOption(option);
	            window.onresize = myChart.resize;
	            
	            return {
	            	refash : function(option){
	                    myChart.setOption(option);
	            	},
	            	option : option,
	            	picChartDom : myChart
	            };
		        
			},
			
			initProcessingStatistics: function(){
				var me=this;
				var	areaIds = $("#areaChoose").combotree("getValues");
				var level = $("#levelType").val();
				var alarmType = $("#alarmTypeSelect").val();
				var startTime = $("#inputStartDate").val();
				var endTime = $("#inputEndDate").val();
				
				var sta_date = new Date(startTime);
	            var end_date = new Date(endTime);//将字符串转化为时间
	            var num = (end_date - sta_date) / (1000 * 3600 * 24);//求出两个时间的时间差，这个是天数
	            var days = parseInt(Math.ceil(num));//转化为整天（小于零的话剧不用转了）
	            if(num<0){
	        		global.ajaxLoading.pop("查询开始时间不能晚于结束时间",false,2000);
	        		return;
	        	}
	            if (end_date.getMonth()-sta_date.getMonth()>1) {
	            	global.ajaxLoading.pop("查询时间不能超过一个月",false,2000);
	                return;
				}
	            if (days > 31) {
	                global.ajaxLoading.pop("查询时间不能超过一个月", false, 2000);
	                return;
	            }
				$.ajax({
					url:appCtx+"base/report/governmentProcessingStatistics/queryProcessingStatistics.html",
					type:"post",
					async : true,
					cache : false,
					data:{
						areaIds:areaIds,
						level:level,
						alarm_type:alarmType,
						startTime:startTime,
						endTime:endTime
					},
					dataType:"json",
					success:function(data){
						/*初始化条形图*/
						var xis = new Array();
						var series1 = new  Array();
						var series2 = new  Array();
						var area_name=null;
						$.each(data,function(index,vo){
							var handleTypes=(vo.handle_type).split(",");
							var counts=(vo.count).split(",");
							xis.push(vo.area_name);
							if(handleTypes.length>1){
								if(handleTypes[0]==2){
									series1.push(counts[0]);
									series2.push(counts[1]);
								}else{
									series1.push(counts[1]);
									series2.push(counts[0]);
								}
							}else{
								if(handleTypes[0]==2){
									series1.push(counts[0]);
									series2.push(0);
								}else{
									series1.push(0);
									series2.push(counts[0]);
								}
							}
						});
						var options = me.DoubleBarChart.option;
						me.xAxisData=xis;
						options.xAxis[0].data=xis;
						options.series[0].data=series1;
						options.series[1].data=series2;
						me.DoubleBarChart.refash(options);
						if (xis&&xis.length>0) {
			            	var areaName = xis[0];
			            	$('#area_name').val(areaName);
			            	me.queryBarListByAreaName(areaName);
			            	me.queryTable(areaName);
						}
					}
				});
			},
			queryBarListByAreaName: function(areaName){
				var me=this;
				var alarmType = $("#alarmTypeSelect").val();
				var inputStartDate = $("#inputStartDate").val();
				var inputEndDate = $("#inputEndDate").val();
				$.ajax({
					url:appCtx+"base/report/governmentProcessingStatistics/queryBarListByAreaName.html",
					type:"post",
					async : true,
					cache : false,
					data:{
						alarm_type:alarmType,
						startTime:inputStartDate,
						endTime:inputEndDate,
						area_name:areaName
					},
					dataType:"json",
					success:function(data){
						/*初始化条形图*/
						var xis = new Array();
						var series = new  Array();
						$.each(data,function(index,vo){
							var noticeName;
							if(vo.notice_type==1){
								noticeName='App';
							}else if(vo.notice_type==2){
								noticeName='短信';
							}else if(vo.notice_type==3){
								noticeName='邮件';
							}else if(vo.notice_type==4){
								noticeName='终端文本下发';
							}
							xis.push(noticeName);
							series.push(vo.count);
						});
						var options = me.BarChart.option;
						options.xAxis[0].data=xis;
						options.series[0].data=series;
						me.BarChart.refash(options);
					}
				});
			},
			
			exportComfirm:function(){
				var me = this;
				var options = $("#resultTable").getOptions();
				//总记录数
				var total = options.total;
				//开始页数
				var StartPage=window.parent.$("#StartPageIndex").val();
				//结束页数
				var EndPage=window.parent.$("#EndPageIndex").val();
				
				var validate=true;
				var msg="";
				if(!StartPage || StartPage==0){
					msg+="起始页不能为空或者0";
					validate=false;
				}
				if(!EndPage || EndPage==0){
					msg+="结束页不能为空或者0";
					validate=false;
				}
				
				if(StartPage && EndPage &&EndPage<StartPage){
					msg+="结束页要大于起始页";
					validate=false;
				}
				if(!validate){
					window.parent.global.ajaxLoading.pop(msg,false,2000);
					return;
				}
				//每页大小
				var pagesize = options.rp;
				window.parent.global.ajaxLoading.pop("正在导出,请稍后.....",true,2000);
				$('#exportModal').modal('hide');
				//获取导出的参数
				var exportParams = options.exportParams;
				if((EndPage - StartPage + 1) * pagesize > 60000&&total>60000)
				{
					global.ajaxLoading.pop("最多只能导出60000条数据", true, 2000);
					return
				}
				
				var header1 = JSON.stringify(governmentProcessingStatistics.getColumn());
				var colModelList=new Array();//表头
				colModelList.push(header1);
				var colModel= $.toJSON(colModelList);
				
				//图片
				 var imageUrl = me.DoubleBarChart.barChartDom.getDataURL({
						type: 'png',
					    pixelRatio: 1
				}); 
				 var imageUrl2 = me.BarChart.picChartDom.getDataURL({
						type: 'png',
					    pixelRatio: 1
				}); 
				var imgsrcList=new Array();
				imgsrcList.push(imageUrl);
				imgsrcList.push(imageUrl2);
				var imgsrc= $.toJSON(imgsrcList);
				
				var alarmType = $("#alarmTypeSelect").val();
				var inputStartDate = $("#inputStartDate").val();
				var inputEndDate = $("#inputEndDate").val();
				var areaName=$('#area_name').val();
				var paramsGrid =  {
						colModel:colModel,
						title:"处理情况统计-政府",
						alarm_type:alarmType,
						startTime:inputStartDate,
						endTime:inputEndDate,
						area_name:areaName,
						imgsrc:imgsrc,
						StartPage:StartPage,
						EndPage:EndPage,
						PageSize:pagesize
				};
				
				post(appCtx + "base/report/governmentProcessingStatistics/exportGovernmentProcessingStatistics.html",paramsGrid);
				
			},
			/**
			 * 导出
			 */
			exportEnterprise: function(){
				var options = $("#resultTable").getOptions();
				var total = options.total;
				var pages = options.pages;
				if(total==0 || pages==undefined){
					global.ajaxLoading.pop("无导出数据",true,1000);
					return;
				}
				//设置默认的开始结束页
				$("#StartPageIndex").val(1);
				$("#EndPageIndex").val(pages);
				$("#exportModal").modal('show');
			},
				
};
governmentProcessingStatistics.init();